perm filename APTST[AP,SYS] blob
sn#067614 filedate 1973-10-20 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE APTST
C00005 00003 CONVRT: JRST GETCH 0: tape feed
C00008 00004 UPPER: JRST GETCH 0: tape feed
C00011 00005 SETSHF CLRSHF SPE1-7
C00014 ENDMK
C⊗;
TITLE APTST
A←1
B←2
CHAR←5
SHIFT←6
P←17
CR←←15 LF←←12
IBUF: BLOCK 3
APTST: RESET
INIT 17,410
SIXBIT /TTY12/
IBUF
JRST [OUTSTR [ASCIZ /INIT FAILED ON TTY12
/]
HALT APTST]
MOVEI A,000700 ;BYTE SIZE OF 7 BITS PLEASE
HRLM A,IBUF+1 ;INTO BYTE POINTER IN BUFFER HEADER
TDZA SHIFT,SHIFT
GETCH: SOSG IBUF+2 ;any chars in AP buffer?
IN 17, ;get some more news
JRST GETCH1
OUTSTR [ASCIZ/ IN UUO FAILED ON AP LINE
/]
HALT .
GETCH1: ILDB CHAR,IBUF+1 ;get a char
TRZE CHAR,100 ;check and mask out 100 bit of incoming AP char
OUTSTR [ASCIZ/ ILLEGAL CHAR FROM AP LINE
/]
ADD CHAR,SHIFT ;SHIFT contains either 100 (octal) or zero
XCT CONVRT(CHAR)
CHAROK: OUTCHR CHAR
JRST GETCH ;return for next char
CONVRT: JRST GETCH ;0: tape feed
MOVEI CHAR,"e" ;1
MOVEI CHAR,LF ;2: elevate→line feed
MOVEI CHAR,"a" ;3
MOVEI CHAR," " ;4: space.
MOVEI CHAR,"s" ;5
MOVEI CHAR,"i" ;6
MOVEI CHAR,"u" ;7
MOVEI CHAR,CR ;10: carriage return
MOVEI CHAR,"d" ;11
MOVEI CHAR,"r" ;12
MOVEI CHAR,"j" ;13
MOVEI CHAR,"n" ;14
MOVEI CHAR,"f" ;15
MOVEI CHAR,"c" ;16
MOVEI CHAR,"k" ;17
MOVEI CHAR,"t" ;20
MOVEI CHAR,"z" ;21
MOVEI CHAR,"l" ;22
MOVEI CHAR,"w" ;23
MOVEI CHAR,"h" ;24
MOVEI CHAR,"y" ;25
MOVEI CHAR,"p" ;26
MOVEI CHAR,"q" ;27
MOVEI CHAR,"o" ;30
MOVEI CHAR,"b" ;31
MOVEI CHAR,"g" ;32
JRST SETSHF ;33: shift
MOVEI CHAR,"m" ;34
MOVEI CHAR,"x" ;35
MOVEI CHAR,"v" ;36
JRST CLRSHF ;37: unshift
MOVEI CHAR," " ;40: thin space→space
MOVEI CHAR,"3" ;41
MOVEI CHAR,LF ;42: paper feed→line feed
MOVEI CHAR,"$" ;43
MOVEI CHAR," " ;44: add thin space→space
MOVEI CHAR," " ;45: em space→space
MOVEI CHAR,"8" ;46
MOVEI CHAR,"7" ;47
MOVEI CHAR,"'" ;50
MOVEI CHAR,"-" ;51
MOVEI CHAR,"4" ;52
JRST GETCH ;53: bell
MOVEI CHAR,"," ;54: comma
JRST GETCH ;55: undefined
MOVEI CHAR," " ;56: en space→space
JRST GETCH ;57: quad right
MOVEI CHAR,"5" ;60
MOVEI CHAR,")" ;61
MOVEI CHAR," " ;62: em space→space
MOVEI CHAR,"2" ;63
JRST GETCH ;64: em leader
MOVEI CHAR,"6" ;65
MOVEI CHAR,"0" ;66
JRST GETCH ;67: en leader
MOVEI CHAR,"9" ;70
JRST GETCH ;71: upper rail
MOVEI CHAR,";" ;72
JRST GETCH ;73: lower rail
MOVEI CHAR,"." ;74: period
MOVEI CHAR,"1" ;75
JRST GETCH ;76: undefined
JRST GETCH ;77: rub out
UPPER: JRST GETCH ;0: tape feed
MOVEI CHAR,"E" ;1
MOVEI CHAR,LF ;2: elevate→line feed
MOVEI CHAR,"A" ;3
MOVEI CHAR," " ;4: space. make into 4 spaces if after LF
MOVEI CHAR,"S" ;5
MOVEI CHAR,"I" ;6
MOVEI CHAR,"U" ;7
MOVEI CHAR,CR ;10: carriage return
MOVEI CHAR,"D" ;11
MOVEI CHAR,"R" ;12
MOVEI CHAR,"J" ;13
MOVEI CHAR,"N" ;14
MOVEI CHAR,"F" ;15
MOVEI CHAR,"C" ;16
MOVEI CHAR,"K" ;17
MOVEI CHAR,"T" ;20
MOVEI CHAR,"Z" ;21
MOVEI CHAR,"L" ;22
MOVEI CHAR,"W" ;23
MOVEI CHAR,"H" ;24
MOVEI CHAR,"Y" ;25
MOVEI CHAR,"P" ;26
MOVEI CHAR,"Q" ;27
MOVEI CHAR,"O" ;30
MOVEI CHAR,"B" ;31
MOVEI CHAR,"G" ;32
JRST SETSHF ;33: shift
MOVEI CHAR,"M" ;34
MOVEI CHAR,"X" ;35
MOVEI CHAR,"V" ;36
JRST CLRSHF ;37: unshift
MOVEI CHAR," " ;40: thin space→space
JRST SPE3 ;41: 3/8
MOVEI CHAR,LF ;42: paper feed→line feed
MOVEI CHAR,"!" ;43
MOVEI CHAR," " ;44: add thin space→space
MOVEI CHAR," " ;45: em space→space
MOVEI CHAR,"-" ;46
JRST SPE7 ;47: 7/8
MOVEI CHAR,"'" ;50: left quote→right quote (ttys dont have left quote)
MOVEI CHAR,"+" ;51
JRST SPE4 ;52: 1/2
JRST GETCH ;53: bell
MOVEI CHAR,"," ;54: comma
JRST GETCH ;55: undefined
MOVEI CHAR," " ;56: en space→space
JRST GETCH ;57: quad right
JRST SPE5 ;60: 5/8
MOVEI CHAR,"(" ;61
MOVEI CHAR," " ;62: em space→space
JRST SPE2 ;63: 1/4
JRST GETCH ;64: em leader
JRST SPE6 ;65: 3/4
MOVEI CHAR,"?" ;66
JRST GETCH ;67: en leader
MOVEI CHAR,"&" ;70
JRST GETCH ;71: upper rail
MOVEI CHAR,":" ;72
JRST GETCH ;73: lower rail
MOVEI CHAR,"." ;74: period
JRST SPE1 ;75: 1/8
JRST GETCH ;76: undefined
JRST GETCH ;77: rub out
;SETSHF CLRSHF SPE1-7
SETSHF: MOVEI SHIFT,100
JRST GETCH
CLRSHF: SETZM SHIFT
JRST GETCH
SPE1: OUTSTR [ASCIZ $ 1/8$]
JRST GETCH
SPE2: OUTSTR [ASCIZ $ 1/4$]
JRST GETCH
SPE3: OUTSTR [ASCIZ $ 3/8$]
JRST GETCH
SPE4: OUTSTR [ASCIZ $ 1/2$]
JRST GETCH
SPE5: OUTSTR [ASCIZ $ 5/8$]
JRST GETCH
SPE6: OUTSTR [ASCIZ $ 3/4$]
JRST GETCH
SPE7: OUTSTR [ASCIZ $ 7/8$]
JRST GETCH
END APTST